Automatic scrolling

ABSTRACT

A scrolling device for a computer may include a touch-sensitive surface, which may be elongated and/or have one or more active regions. Scrolling may be performed in manual as well as automated ways that may result in more accurate and efficient scrolling. Scrolling, as displayed on the screen, may further be rounded to the nearest document text line and/or distance unit, even though a more precise scrolling location value may be stored and/or tracked.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and is a divisional of U.S. patentapplication Ser. No. 09/940,463, entitled “Automatic Scrolling,” filedAug. 29, 2001 now U.S. Pat. No. 6,690,365, hereby incorporated byreference as to its entirety. This application is also related to U.S.patent application Ser. No. 09/940,900, entitled “Touch Sensitive Devicefor Scrolling a Document on a Display,” and U.S. patent application Ser.No. 09/940,505, entitled “Manual Controlled Scrolling,” both filed Aug.29, 2001, hereby incorporated by reference as to their entireties.

FIELD OF THE INVENTION

The present invention is directed generally to the scrolling of adocument on a display screen or the like, and more particularly tovarious apparatuses and methods for controlling document scrolling usinga touch-sensitive scrolling device.

BACKGROUND OF THE INVENTION

Scrolling of documents, such as word processing documents or Internetweb pages, for example, is a common task when using computing systems.There have been recent efforts focusing on methods and techniques forproviding pleasant and efficient user interfaces for scrolling. It hasbeen observed that people perform many real-world tasks using bothhands. When users operate computers, however, they are often required touse a single hand for many major interface activities, such as moving amouse. The single hand used is usually the dominant hand of the user.Even when using the mouse to scroll through a document, the dominanthand is typically used. This can be inefficient where the dominant handmay be required for other tasks as well, such as entering numbers on anumeric pad or selecting objects on the screen.

Known methods of scrolling documents are also not as intuitive or easyto use as they could be. For instance, conventional systems typicallyrequire that the user first move a cursor on the screen to a scroll barbefore scrolling with a mouse, or that the user press arrow keys on akeyboard or rotate a scroll wheel on a mouse. However, some of thesetechniques do not allow for precise scrolling or the ability to move toa distant portion of the document quickly and accurately. There is aneed for better ways to accurately control document scrolling. There isalso a need for providing the ability to accurately control documentscrolling without the user having to move his or her hands from thekeyboard.

SUMMARY OF THE INVENTION

According to one aspect of the present invention, a touch-sensitivescrolling device, preferably in the form of an elongated touch-sensitivestrip-shaped surface, may be used to manually control scrolling. Thescrolling device may, however, be of various shapes, such as square,rectangular, oblong, circular, cross-shaped, X-shaped, and oval.

Various automatic scrolling functions may be implemented using thescrolling device. According to an aspect of the present invention,various techniques and/or gestures may be used to initiate anauto-scroll mode and/or other mode. These techniques are related toregional positioning of the user's finger (or other pointer) for athreshold amount of time and/or with at least a threshold amount ofpressure. In a hold-and-scroll initiation technique, the speed of theautomatic scrolling may be determined by finger pressure and/or otherfactors. For instance, if the user initiates contact with the scrollingdevice within an up-scrolling or down-scrolling region, then thedocument may in response begin to auto-scroll following an optionalshort delay. The rate of automatic scrolling may depend upon the amountof finger/pointer pressure applied to the surface of the scrollingdevice. To more accurately calculate the amount of finger pressureapplied, a specialized algorithm may be used.

According to another aspect of the present invention, if the usertouches and holds the pointer anywhere on the touch-sensitive surface ofthe scrolling device without moving or without substantial movement,then after an optional short delay an auto-scrolling mode may beinitiated such that subsequent motions of the pointer along thescrolling device surface causes to the document to scroll at a raterelated to the distance between the initial contact point and thecurrent position of the user's pointer.

According to yet another aspect of the present invention, differentscrolling rates and/or sensitivities may be utilized for scrolling inone direction (e.g., scrolling up) as compared with scrolling in anotherdirection (e.g., scrolling down). This may help account for the shape ofthe touch-sensitive surface of the scrolling device and/or bezel and/orfor the fact that more of the user's finger/pointer may be expected tocontact the surface of the scrolling device in one area of the surfaceas compared with another area of the surface, due to the position of thehand and/or shape of the finger/pointer.

These and other features of the invention will be apparent uponconsideration of the following detailed description of preferredembodiments. Although the invention has been defined using the appendedclaims, these claims are exemplary in that the invention is intended toinclude the elements and steps described herein in any combination orsubcombination. Accordingly, there are any number of alternativecombinations for defining the invention, which incorporate one or moreelements from the specification, including the description, claims, anddrawings, in various combinations or subcombinations. It will beapparent to those skilled in the relevant technology, in light of thepresent specification, that alternate combinations of aspects of theinvention, either alone or in combination with one or more elements orsteps defined herein, may be utilized as modifications or alterations ofthe invention or as part of the invention. It is intended that thewritten description of the invention contained herein covers all suchmodifications and alterations.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary of the invention, as well as the followingdetailed description of preferred embodiments, is better understood whenread in conjunction with the accompanying drawings, which are includedby way of example, and not by way of limitation with regard to theclaimed invention. In the accompanying drawings, elements are labeledwith three-digit reference numbers, wherein the first digit of areference number indicates the drawing number in which the element isfirst illustrated. The same reference number in different drawingsrefers to the same element.

FIGS. 1A and 1B are plan views of exemplary scrolling devices, in theform of a strip, according to at least one aspect of the presentinvention.

FIG. 2 is a functional block diagram of an exemplary system including ascrolling device, and computer, and interfaces between them, accordingto at least one aspect of the present invention.

FIG. 3 is a flow diagram showing exemplary steps that may be performedto implement step scrolling according to at least one aspect of thepresent invention.

FIG. 4 is an exemplary display on a display screen according to at leastone aspect of the present invention.

FIG. 5 is a flow diagram showing exemplary steps that may be performedto implement move/no-move detection according to at least one aspect ofthe present invention.

FIG. 6 is a plan view of an exemplary two-dimensional scrolling padaccording to at least one aspect of the present invention.

FIG. 7 is a plan view of an exemplary two-dimensional multi-leggedscrolling pad according to at least one aspect of the present invention.

FIGS. 8A and 8B are side views of a user's finger in two differentpositions relative to the scrolling device of FIG. 11B, according to atleast one aspect of the present invention.

FIG. 9 is a flow diagram showing exemplary steps that may be performedto implement speculative autoscroll according to at least one aspect ofthe present invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Referring to FIGS. 1A and 1B, a touch-sensitive scrolling device 100 maybe coupled to a computer 202 (FIG. 2) or another electronic processingsystem such that the position of a pointer (e.g., a human finger, astylus, or other appropriate object) on the scrolling device 100 affectsthe scroll position of a document as shown on an output device such as adisplay screen 208 (FIG. 2). Throughout the specification, there willoften be references to the user's finger. Such reference is merelyexemplary and will be understood to apply to any type of pointer.

Touch-sensitive pads and devices are well-known, such as the touch padfor cursor control commonly found on many laptop computers. The presentscrolling device 100 may take advantage of such known technology and/orbe physically configured in any way to create a touch-sensitive device.The scrolling device 100 may be sensitive to human touch and/or tonon-human touch such as from a pen or stylus-type pointer. The scrollingdevice 100 also may be utilized without actually touching the surface ofthe scrolling device 100 with the pointer. For instance, the scrollingdevice 100 may be configured to detect the pointer position as it hoversjust over the surface of the scrolling device 100; suchproximity-detection technology is also known. What is important is thatthe scrolling device 100 and/or other device, computer, or interface incombination with the scrolling device 100 be able to determine theposition of the pointer relative to the surface of the scrolling device100, either where the pointer is near to or touching the surface of thescrolling device 100.

The scrolling device 100 may or may not be physically and/orfunctionally subdivided. Where the scrolling device 100 is subdivided,the scrolling device 100 may have a scrolling region 101 and/or one ormore active regions 102, 103. The active regions 102, 103 may be of anyshape and/or size, and may be physically attached to or separate fromthe scrolling region 101 and/or each other. In another embodiment, thescrolling region 101, the active region 102, and/or the active region103 may be physically the same continuous touch-sensitive surface andonly functionally divided. Thus, although the physical appearance wouldbe one single touch-sensitive surface, different portions of the singlesurface may respond differently. For instance, the middle portion of thesurface may act like the scrolling region 101 and the two end portionsmay act like the active regions 102, 103. In the case where thescrolling device 100 is functionally subdivided into regions, thefunction(s) assigned to one or more of each region may changedynamically depending on the location, timing, direction, and/or otherproperties of the user's gesture. For instance, a particular gesturesuch as double-tapping may cause a particular region to switch from afirst associated function to a second associated function.

The active regions 102, 103 are preferably disposed at opposing ends orend portions of the scrolling region 101, especially where the scrollingregion 101 is elongated such as in the form of a strip. However, theactive regions 102, 103 may be disposed anywhere proximate to thescrolling region 101. If no active regions 102, 103 exist, then theentire scrolling device 100 may be the scrolling region 101. The lengthof the exemplary scrolling region 101 discussed herein has a length Dalong the longitudinal axis, which may be of any length such as aboutone inch, between about one inch and about four inches, or greater thanabout four inches. Preferably, the scrolling region 101 is of a lengthsuch that a user could easily move his or her finger from one end of themain scrolling region 101 to the other without having to significantlymove his or her hand.

The scrolling device 100 may be of any desired shape and/or size. Forexample, the scrolling device 100 may be in the shape of a strip,square, rectangle, triangle, wedge, circle, oval, cross, “X”, or anyother desired shape. For one-dimensional scrolling, an elongatedscrolling device 100 and/or scrolling region 101 is preferable but notrequired. Where the scrolling region 101 is elongated, the scrollingregion may be at least twice as long D as it is wide, or at least fourtimes as long D as it is wide, or even more elongated. Fortwo-dimensional scrolling, other shapes may be preferable as will bediscussed later. Moreover, the surface of the scrolling device 100 maybe flat, curved, and/or angular.

The scrolling device 100 may be separate device or may be incorporatedinto another device such as a keyboard, mouse, and/or laptop computer.In some embodiments, the scrolling device 100 may be on the side of akeyboard. In other embodiments, the scrolling device 100 may be betweensome of the keys of the keyboard, especially where the keyboard is asplit keyboard. Examples of such embodiments are disclosed in co-pendingpatent application Ser. No. 09/940,990, entitled “Touch Sensitive Devicefor Scrolling a Document on a Display,” filed Aug. 29, 2001, herebyincorporated by reference as to its entirety, and particularly as to thedisclosed exemplary embodiments of touch-sensitive surfaces and devices.Where the scrolling device 100 is incorporated into a keyboard, the usermay be more able to scroll a document without having to remove his orher hand from the keyboard.

Referring to FIG. 2, the scrolling device 100 may be coupled to acomputer 203 such as a personal computer (e.g., a desktop or laptopcomputer). The scrolling device 100 and computer 203 together form asystem 200. One or more interfaces and/or driving circuitry/software202, 204 may be utilized to provide communication between the scrollingdevice 100 and the computer 203. In the example shown in FIG. 2, each ofthe scrolling device 100 and the computer 203 has its own interface anddriver 202, 204. However, some or all of the interfaces and drivers, ifany, may be located wherever is convenient, such as all within thescrolling device 100, all within the computer 203, or distributedbetween the two.

The computer 203 may be a desktop computer, laptop computer, mainframecomputer, internal or external server, household appliance, automobilecomputer system, and/or any other device or apparatus that includes anelectronic processing system. The computer 203 may include one or moreof the following, which may be coupled together, such as via a bus 209:various other input devices 205 such as a keyboard and/or mouse, aprocessor 206 such as a microprocessor or central processing unit (CPU),storage 207 such as memory, a hard drive, and/or a diskette drive,and/or a display screen 208 and/or other output device for viewing adocument. The device for viewing the document may include a CRT screen,and LCD screen, a projector, a heads-up display, a virtual-realitygoggle display, and/or any other device suitable for viewing thedocument.

The term “viewing” or “displaying” a document is used broadly herein andin the claims: this term encompasses not only visual viewing ordisplaying but also “viewing” or “displaying” the document audibly via,e.g., a voice synthesizer with speaker that speaks words in the documentaccording to the presently-scrolled position of the document, or acomputerized Braille-generator that generates Braille words in thedocument according to the presently-scrolled position of the document,as might be used by a visually-impaired user.

Referring to FIG. 4, the display screen 208 and/or other output devicemay display at least one document 401 that the user of the computer 203may be working on or viewing. The document 401 (which may be stored inthe storage 207, controlled by the processor 206, and/or modified byvarious input devices 205) may be any type of document at all, such as aword processing document, a spreadsheet, a drawing, a photograph orother image, and/or an Internet web page. The document 401 may be thedisplayed output, results, and/or viewable user interface associatedwith any software and/or hardware-driven application and/or operatingsystem, such as a control screen, window, or file directory.

A common feature of many documents is that they are often too large toeasily view all at once on the display screen 208. Accordingly, it oftenbecomes necessary to scroll through the document 401 on the displayscreen 208 in order to view various selected portions of the document401. As shown in FIG. 4, the display screen 208 may also display one ormore graphical user interface or indicator (GUI) scrollbars 402, 404each having GUI “elevators” 403, 405 for controlling and/or indicatingthe scroll position of the document 401 in the vertical and/orhorizontal direction. The display screen may further display various GUItools 406 for controlling and modifying the document 401, such as fontsize, underlining, cut, copy, paste, etc. The items 401, 402, 403, 404,405, 406 on the display screen 208 may be generated and/or controlled bythe processor 206 and/or any other component of the system 200,including software and/or an operating system, either alone or in anycombination or subcombination. Also, scrolling of the document 401 maybe implemented by the processor 206 and/or any other component of thesystem 200, including software and/or an operating system, either aloneor in any combination or subcombination.

Any touching or proximity of the user's finger to the touch-sensitivesurface of the scrolling device 100 may cause the scrolling device 100to generate at least one signal indicating the location, pressure,speed, acceleration, and/or direction of the finger, and/or whichportion of the surface(s) of the scrolling device 100 are being touchedby the finger. However, for simplicity of description, the remainder ofthis application assumes that the scrolling device 100 is designed tosense touching, rather than a threshold proximity, of the pointer. Thesesignals may be received by the computer 203 and/or interpreted by theprocessor 206. Signal generation and processing may, however, occuranywhere within the system 200. For instance, the interfaces and/ordrivers 202 and/or 204 may perform some or all of the signal generationand/or processing functions. Thus, in response to the user's finger, oneor more signals may be generated by the system 200 indicatinginformation about the contact of the finger to the scrolling device 100,and such signals may be interpreted and processed by the system 200 toprovide the various scrolling features described herein.

Although scrolling as a general concept is known and used everyday inpersonal computers (e.g., by use of a mouse or arrow keys on akeyboard), various new exemplary ways to control scrolling of thedocument 401 using a scrolling device such as the scrolling device 100are described herein.

The Active Regions

The active regions (e.g., active region 102) may be configurable intheir functions. The active regions may be configured to performdifferent functions when utilized in combination with one or more keyson a keyboard, and/or buttons on a mouse, of the system 200. Forexample, tapping the active region 102 without pressing a key on thekeyboard may cause the document to page up, while tapping the activeregion 102 while holding down the Ctrl key (or another key) may causethe document to jump to the document's limits (e.g., its beginning, end,left edge, or right edge). This may occur even where the user isperforming another gesture that includes the active region 102. Forinstance, if the user is holding the finger down on the active region102, and the Ctrl key is later pushed while the finger is still helddown on the active region 102, then the system 200 may immediatelyrecognize this gesture as requesting the document to be paged in the updirection. Such recognition by the system 200 in this case may occureven before the user removes the finger from the active region 102and/or before the Ctrl key returns to the up position.

The active regions may further be configurable in their sizes andshapes. As previously mentioned, the active regions (e.g., active region102) may be physically separate from or contiguous with the scrollingregion 101. Where the active regions are physically contiguous with thescrolling region 101, the active regions may be defined not physicallybut functionally by the system 200. For instance, the top (e.g., 10%)and bottom (e.g., 10%) portions of the length of the touch-sensitivesurface of the scrolling device 100 may be defined by the system 200 asbeing the active regions. The size of the portions defining the activeregions may be static or they may be dynamically altered in real time bythe system 200 and/or upon request by the user. The areas of the activeregions may be defined by one or more bounding polygons. This mayprovide for flexibility in assigning regions that are to act as activeregions. For instance, an active region may be defined in a middleportion of the touch-sensitive surface of the scrolling device 100instead of, or in addition to, an end portion. The active regions may bedefined as squares, circles, ovals, rectangles, or any other shape.

Also, the active regions 102, 103 may be used, in one exemplaryembodiment, as auto-scroll regions. Auto-scrolling is characterized inthat the document 401 may scroll even though the user's finger does notmove along the touch-sensitive surface of the scrolling device 100. Thisdoes not mean that the user could not move his or her finger and thatsuch movement would not also affect scrolling. But certain gestures thatdo not require movement of the finger across the touch-sensitivesurface, such as tapping, holding, and/or applying pressure, maynevertheless cause the document 401 to scroll.

For example, responsive to the user initiating finger contact with oneof the active regions 102, 103, the system 200 may determine which ofthe active regions are contacted and cause the document 401 toautomatically scroll in different directions, such as up or down (and/orleft or right), depending upon which active region is contacted. Forinstance, where the active region 102 is contacted, the document 401 mayin response scroll up, and where the active region 103 is contacted, thedocument 401 may in response scroll down. Automatic scrolling may startfollowing a short delay after the finger contact is initiated with oneof the active regions 102, 103. However, a delay is not required. Wherethe auto-scroll regions embodied as portions of the scrolling region101, auto-scrolling may occur in response to the user's finger remainingsubstantially still relative to the scrolling region 101, but not ifthere is movement. This may reduce the possibility that auto-scrollingwould be initiated where the user starts a stroke on the scrollingdevice 100 within the auto-scrolling regions, hence allowing for theauto-scrolling and relative scrolling modes to better share the physicalreal estate of the scrolling strip. Scrolling may continue until, forexample, the user lifts the finger off the active region or otherportion of the touch-sensitive surface that has been touched.Alternatively, the document 401 may continue to scroll even after thefinger has been lifted, but may stop scrolling instead responsive to thefinger tapping or otherwise touching the touch-sensitive surface again.

Further, where the user slides his or her finger toward an end of thescrolling region 101, if the user continues to hold his or her finger atthe end (without substantial movement), then following an optional shortdelay (e.g., approximately 500 ms), the document 401 may continue toscroll in the same direction that it was previously scrolling inresponse to the finger movement that led to the finger reaching the endof the scrolling region 101.

Speed-Sensitive Acceleration

In one exemplary embodiment, an acceleration component may be applied tothe amount of scrolling depending upon how fast the user moves his orher finger along length D. For the following equations, it will beassumed that the scrolled position of a document 401 on the displayscreen 208 is expressed as y. The amount that the document 401 isscrolled is expressed as dy, which may be in units of pixels, textlines, millimeters, centimeters, inches, or any other measurement unit.The position of the finger on the touch-sensitive surface of thescrolling device 100 may be continuous or sampled. Where the position issampled, the sampled position of the finger for sample number i isexpressed in the equations as Y_(i). The amount of scrolling dy may becalculated as an exponential transformation of (Y_(i)−Y_(i-1)), thedistance between current and previous finger position samples on thescrolling strip 100. The document may then be scrolled by the amount dycorresponding to the current sample. Such scrolling may thereafter berepeated for each new sample. Thus, the speed of scrolling of thedocument 401 on the display 208 would be non-proportional to the speedof the finger moving along the scrolling region 101 along the length D.For instance, the following transformation may be applied:dy=K ₁(Y _(i) −Y _(i-1))(e ^(1+K) ² ^((Y) ^(i) ^(−Y) ^(i-1) ⁾ −e+1)  (1)

This transformation can be beneficial by allowing precise, slowscrolling at low speeds (“micro-scrolling”), and rapid scrolling acrosslonger distances when moving quickly (“macro-scrolling”). Thus, thistransformation enhances the performance of both micro-scrolling andmacro-scrolling. The units of dy are determined by the units of K₁.Thus, where K₁ is in units of pixels, then the value dy indicates theamount of pixels for the document 401 to scroll on the display screen208. Where K₁ is in centimeters, the value dy indicates the number ofcentimeters for the document to scroll. Where K₁ is in text lines, thevalue dy indicates the number of text lines for the document to scroll.The value dy may be multiplied by a gain factor depending upon suchthings as user-selected preferences, the particular software applicationbeing used to manipulate/edit the document 401, the zoom factor of thedocument 401, and/or the type of the document 401 (e.g., wordprocessing, web page, drawing, etc.).

Preferably, a scrolling speed threshold is not used. A continuousvariable gain may be applied depending upon how quickly the user'sfinger is moving across the scrolling region 101 of the scrolling device100′ In a preferred embodiment, Y_(i) and Y_(i-1) are measured asfractional distances per sample of the length of the scrolling region101. For instance, (Y_(i)−Y_(i-1))=0.0 indicates no movement betweensample i and sample i−1; (Y_(i)−Y_(i−1)) 0.1 may indicate movementacross 10% of the total length of the scrolling region 101 (or apredetermined portion thereof) between sample i and sample i−1; and(Y_(i)−Y_(i-1))=1.0 may indicate movement across the entire length D ofthe scrolling region 101 (or the predetermined portion thereof) betweensample i and sample i−1. In such an embodiment, it has been found thatthe following approximate values work well: K₁=367.879*(sampling rate inHz/20 Hz) and K₂=5.7546*(sampling rate in Hz/20 Hz). In other words, K₁may equal approximately 18.3940 times the sampling rate in Hz, and K₂may equal approximately 0.28773 times the sampling rate in Hz. Forexample, at a sampling rate at 20 Hz, when the user has moved 1% of thelength of the scrolling region 101 during one sample (which would betypical of slow, controlled movement), equation (1) becomes:dy=367.879*0.01*(e^(1+5.7546*0.01)−e+1)  (2)dy=4.27  (3)

As another example, where the sampling rate is 50 Hz, again withmovement of 1% of the scrolling region 101 length during a singlesample, this would mean that the movement along the scrolling region 101was faster than in the above example with a 20 Hz sampling rate. Usingthe same K₁ and K₂ values, equation (1) becomes:dy=919.698*0.01*(e^(1+14.387*0.01)−e+1)  (4)dy=13.065  (5)

To implement the above scrolling feature, the system 200 may generateone or more signals indicating the measured locations T_(i) and T_(i−1)(and/or the difference between the locations) on the scrolling region101, and such signals may be processed by the system 200 to implementthe algorithm of equation (1). Each measurement may be a sample in time,and the system 200 may also take sampling rate into account.

Rounding to Whole Lines

The amount of scrolling may be rounded to a whole integer number oflines, pages, paragraphs, and/or other portions of the document 401.Such rounding may be performed in conjunction with any of the scrollingmodes available to the system 200. In one exemplary embodiment, at leasttwo different current scrolling positions are computed and/or stored.The first scrolling position, which will be called herein the “actualscroll position,” is the position on the screen that the viewed document401 is scrolled to. The actual scroll position reflects a whole integernumber of lines and/or pages of scrolling. The second scrollingposition, which will be called herein the “virtual scroll position,”keeps track of a higher-resolution scroll position within the document401. The virtual scroll position preferably is not rounded to a wholeinteger numbers of lines or pages. For instance, where the virtualscroll position may be a measured distance corresponding to 3.23 lines,the actual scroll position may be rounded down to 3 lines exactly or upto 4 lines exactly. Or, where the virtual scroll position may be ameasured distance corresponding to 4.56 pages, the actual scrollposition may be rounded up to 5 pages exactly or down to 4 pagesexactly.

Thus, the virtual and actual scroll positions do not need to be in thesame units as each other; for instance, the virtual scroll position maybe in inches and the actual scroll position may be stored as the numberof text lines and/or as a distance with a known correlation betweendistance and number of text lines (e.g., it may be known for aparticular document that text lines occur every 0.326 inches). Also, thevirtual and actual scroll positions may be measured as absolutepositions, such as measured relative to the top or bottom of thedocument 401, and/or as relative positions, such as measured from thelast scroll position.

The term “rounding” as used herein includes actual conventional rounding(e.g., 5.2 is rounded to 5.0 and 5.6 is rounded to 6.0) as well astruncation (e.g., 5.x is truncated to 5.0, regardless of the value ofx), and/or any other way of reducing the numerical resolution of theactual scroll position. For instance, where the actual scroll positionis 3.67 inches, the virtual scroll position may be “rounded” by reducingthe numerical resolution of 3.67 centimeters to any of the following:3.6 centimeters or 3.7 centimeters (where the desired “rounded”resolution is tenths of a centimeter), or 3 centimeters or 4 centimeters(where the desired “rounded” resolution is centimeters).

An exemplary flow diagram showing how such “rounded” scrolling may beimplemented is shown in FIG. 3. The user's gesture is received as aninput, thereby generating a scroll command (step 301). A “gesture” maybe any touching, sliding, holding or releasing of the finger (or anycombination or subcombination thereof) against or from thetouch-sensitive surface of the scrolling device 100. For instance, theuser may perform a gesture by moving his or her finger down quicklyalong the surface of the scrolling device 100, such that the scrollingdevice 100, computer 203, and/or interface(s) 202, 204 attached theretogenerates an associated scroll command indicating a downward scroll by aparticular amount and/or at a particular speed. The scroll command isconverted into a virtual scrolling position, preferably with as muchprecision as practical (step 302). A prior virtual scrolling positionmay already be stored (for instance, in the storage 207), in which casea new virtual scrolling position would be calculated by updating the oldvirtual scrolling position with the scrolling command. For instance, ifthe old virtual scrolling position is at point A (e.g., 3.72 inches fromthe top of the document), and the scroll command indicates virtualdownward scrolling by a certain amount, then the new calculated virtualscrolling position at point B (e.g., 6.31 inches down from the top ofthe document 401) be calculated by determining the change (in thisexample, a downward change of 2.59 inches) in the old virtual scrollingposition as a result of applying the scroll command. Of course, virtualand actual scrolling positions may be determine and stored in any formatand using any measurement, such as distance, number of lines, number ofpages, number of paragraphs, etc.

It is possible that the new virtual scrolling position may beout-of-bounds, such as off the edge of the document or outside of someother defined or arbitrary boundary (e.g., scrolling might be limited toremaining within a particular portion of the document). Thus, a check ispreferably made to ensure that the virtual scrolling position is notout-of-bounds (step 303). If it is, then the virtual scrolling positionis adjusted to be within the permitted boundary (step 304).

The actual scroll position is computed by converting the units of thevirtual scroll position if necessary and rounding the virtual scrollingposition to the desired lower resolution such as whole units of documentpages or text lines (step 305), and the document 401 as viewed on thedisplay screen 208 may then be scrolled to the actual scrolling position(step 306). In this example, the actual scrolling position may be 6.31inches rounded to the nearest line, inch (e.g., 6 inches), page, and/orother desired standard. Calculating the actual scrolling position eachtime based on the updated virtual scrolling position allows subtlechanges of the user's input to add up over time (accumulating in thevirtual scroll position), which may eventually affect the (more coarse,i.e., lower resolution) actual scrolling position in terms of wholelines or pages of scrolling visible on the screen.

Some or all of the steps described in connection with FIG. 3 may beperformed serially or in parallel, may be combined as single steps, maybe further subdivided into additional sub-steps, and/or may be combinedwith other steps from other aspects and embodiments of the presentinvention such as those described in connection with FIG. 5.

Moving/Not Moving Detection

When scrolling, it may be desirable to ignore very small finger motionsin certain circumstances. For instance, it may be desirable to ignoreunintentional small movement by the user's finger on the touch-sensitivesurface of the scrolling device 100. This is beneficial where, forinstance, a user cannot control his or her finger to be absolutely stillwhen holding the finger in one place on the touch-sensitive surface.This may also prevent the document 401 from “swimming,” or appearing tomove slightly on the display screen, due to small variations in thesensor readings and/or twitching of the user's finger. When the user'sfinger is in contact with the surface of the scrolling device 100, thesystem may infer whether or not the user is intentionally moving his orher finger across the surface of the scrolling device 100 by use of acombination of different movement thresholds. The decision as to whetherthe user is intentionally moving the finger may be used as a buildingblock for several other features and recognized gestures, such asgestures that may freeze scrolling and/or the onset of an auto-scrollingmode in some situations.

FIG. 5 shows an exemplary flow diagram of how moving/not movingdetection may be implemented. When the user first touches thetouch-sensitive surface of the scrolling device 100, as detected in step500, the user's finger position is considered to be not moving on thescrolling device 100. The state of not moving may be an initialcondition. The state of moving or not moving may be stored as a flag orusing any other method to effectuate a “moving” or “not moving” state.If it is determined that the finger movement does not exceed a firstthreshold distance and/or speed within an optional first timeout period(steps 501 and 502), then the finger is still considered to be notmoving on the scrolling device 100, and the determination of whether thefirst threshold is continued. On the other hand, where the finger motionexceeds the first threshold within the first timeout period, the fingeris then considered to be moving (the “moving” state), and a flag may beset accordingly (step 503). This flag may be stored, such as in thestorage 207. The first threshold, when defined as a distance, may bedefined as a set length (e.g., millimeters or inches), set speed (e.g.,millimeters per second), set percentage of the scrolling region 101length D, or any combination or subcombination of these. In oneexemplary embodiment, the first threshold may be set at approximately 1%of the length D of the scrolling region 101. The system continues toconsider the finger as moving until a second timeout expires (step 504)during which total movement of the finger is less than a secondthreshold distance and/or speed (step 505).

In exemplary embodiments, the first and second timeouts may be the sameor they may be different. For instance, the second timeout may beapproximately twice the first timeout (e.g., the first timeout may be beapproximately 200 milliseconds and the second timeout may beapproximately 400 milliseconds). In still further embodiments, thesecond threshold may be approximately 0.5% of the length D of thescrolling device 100. Although it is preferable that the secondthreshold be smaller than the first threshold, the second threshold maybe identical to the first threshold or even larger than the firstthreshold. If the finger movement is less than the second threshold, thefinger once again is considered to be not moving (the “not moving”state), and a flag may be set accordingly (step 506). If the fingermovement exceeds the second threshold, then the finger is stillconsidered to be moving, and the process continues with another delaybeing timed at step 504. Some or all of the steps described inconnection with FIG. 5 may be performed serially or in parallel, may becombined as single steps, and/or may be further subdivided intoadditional sub-steps.

In one exemplary embodiment, finger contact with the touch-sensitivesurface of the scrolling device 100 does not cause any scrolling untilthe “moving” state is attained. From then on, motions of the user'sfinger may cause the document to scroll, until the “not moving” state isattained, at which point scrolling may be locked to its current positionuntil the “moving” state resumes.

Dealing With Lift-Off

Sometimes when the user removes his or her finger from thetouch-sensitive surface of the scrolling device 100 (otherwise knownherein as “lift-off” or “release”), the user's finger mayunintentionally affect or disturb the current scroll position. Theeffects of this can be reduced by maintaining a FIFO (first-in,first-out) queue of recent finger positions. The FIFO queue may bestored by the system 200, such as in the storage 207 and/or in memory ofthe scrolling device 100 itself When the user breaks contact with thetouch-sensitive surface of the scrolling device 100, the system 200 maysearch back through the queue to look for a sample where the scrollingmotion came to a definite (or near) stop. If such a sample is found, thescroll position may be adjusted to occur at that stop point. Thus, whereit appears that the user's intent was to stop, then the scroll positionwould be adjusted according to the user's apparent intent.

On the other hand, if no such sample is found in the queue thatindicates an intended stop, or if the amount (distance) of thecorrection is larger than a threshold amount (measured by distanceand/or percentage of the length scrolling region 101), then the scrollposition may be not adjusted. The reason for rejecting a largecorrection is this indicates that the user probably was moving his orher finger relatively quickly when the user let go of thetouch-sensitive surface of the scrolling device 100. This is not anuncommon phenomenon as the resistance or drag of the finger may beexpected to be naturally reduced during the lift-off process.Accordingly, not changing the scroll position in such a circumstancewould likely be beneficial because the user intends rapid motion, andundoing that motion would counter the user's intent.

Absolute Scrolling

In another exemplary embodiment, an absolute scrolling mode may beinvoked, either by default, by decision of the system 200, and/or byuser request such as through a particular gesture on the scrollingdevice 100. The absolute scrolling mode establishes a one-to-one, orproportional, correspondence between the scrolling region 101 (or someportion thereof) and the scrolled position of the document 401 as viewedon the display screen 208 and/or other output device. For example, saythat absolute scrolling mode is invoked; if the user's finger is locatedin the middle of the length of the scrolling region 101 (or the relevantportion thereof), then the document 401 may in response be scrolled tothe middle of the document 401. Or, where the user's finger is located25% from the top of the scrolling region 101 (or the relevant portionthereof), the document 401 may in response be scrolled to the portion ofthe document 401 that is 25% from the top of the document 401. Thus, thetop of the document 401 may correspond to one end of the scrollingregion 101 (or the relevant portion thereof) and the bottom of thedocument 401 may correspond to the other end of the scrolling region 101(or the relevant portion thereof). Further, absolute scrolling mode mayprovide access to only a portion of the document 401, such that one endof the scrolling region 101 (or portion thereof) corresponds to a firstlocation in the document 401, and the other end of the scrolling region101 (or portion thereof) corresponds to a second different location inthe document 401, wherein the first and second locations may or may notbe the ends of the document 401.

The user may invoke the absolute scrolling mode (or any other mode orfunction) in one or more of a variety of ways. For instance, absolutescrolling mode may be invoked by a gesture such as tapping-and-holding,double-tapping-and-holding, double-tapping then tapping and holding, orapplying more finger pressure than usual for a minimum threshold amountof time, to the scrolling portion 101. Changing scroll modes in responseto a gesture on the scrolling device 100 can be beneficial in that theuser may not need to move his or her hand from the touch-sensitivesurface of the scrolling device 100 in order to invoke a scrolling mode.In one embodiment, such a gesture may be performed anywhere on thetouch-sensitive surface of the scrolling device 100, such as at a centerportion between the two ends of the touch-sensitive surface.Alternatively, absolute scrolling mode (or any other mode or function)may be invoked by the user pressing a key or button spaced proximate tothe touch-sensitive surface of the scrolling device 100 or on akeyboard. When the touch-sensitive surface of the scrolling device 100is disposed at or near the left side of the keyboard, the Ctrl key (forexample) is particularly well suited to activate absolute scrolling asthe left-hand thumb can hold the Ctrl key while another finger of thesame hand touches the strip. In general, it may be desirable to use akey to activate absolute scrolling (or any other feature or mode of thescrolling device 100) that is reachable simultaneously by the same handthat is touching the touch-sensitive surface of the scrolling device100. Other exemplary keys that may be used for activating automaticscrolling (or other features or modes of the scrolling device 100) arethe Tab or Esc keys (where the touch-sensitive surface of the scrollingdevice 100 is near the left side of the keyboard), the space bar, theShift keys, or the Alt keys.

Of course, absolute scrolling mode may be automatically invoked by thesystem 200 and/or be set as the default scrolling mode. In one exemplaryembodiment, the system 200 may compare the gesture with one or morestored gestures to determine whether the gesture is the correct gestureto invoke a mode change. In response to the gesture being correct, thesystem 200 may change modes, such as into absolute scrolling mode orauto-scroll mode.

At the time that the absolute scrolling mode is invoked, the system 200may in response (1) scroll, jump, or otherwise move the document 401 tothe absolute scrolled position corresponding to the location on whichthe user's finger invoked absolute scrolling mode on the scrollingdevice 100, and/or then (2) remain in the absolute scrolling mode for aslong as the user maintains contact with touch-sensitive surface of thescrolling device 100. While in the absolute scrolling mode, the document401 may behave much like it would if the user were to click and drag theelevator(s) 403, 405 of the scrollbar(s) 402, 404 up or down (or left orright). The user may exit the absolute scrolling mode by any desirabletechnique such as breaking finger contact with the surface of thescrolling strip 100. Alternatively, the user may have to perform anaffirmative act such as tapping or double-tapping the scrolling strip100 to terminate the absolute scrolling mode. After terminating theabsolute mode, the system 200 may revert to its “default” mode, whichmay be some other mode of scrolling.

Auto-Scrolling Based on Finger Position

If the user touches and holds his or her finger anywhere on thescrolling region 101 without moving (such as on a central portionbetween the two ends of the scrolling region 101), then auto-scrollingmode may also be invoked after an optional short delay. In such anembodiment, subsequent motions of the finger may thereafter cause thedocument 401 to scroll at a rate depending upon the distance between theinitial contact point and the user's current position, and/or dependingupon the absolute location of the finger on the scrolling region 101.The rate may be proportional to the distance and/or location, and/or mayhave a linear or nonlinear dependence on the distance and/or location ofthe finger. Because in certain embodiment the location of the touchdetermines the rate of auto-scrolling, the user may be able to moreaccurately control (and dynamically adjust on the fly) the scrollingrate.

In operation, for instance, where the user's finger touches and holdsthe finger at point A on the scrolling region 101, and then slides thefinger across at least some of the length of the scrolling region 101 ina first direction to point B, the document 401 may automatically scroll,and continue to scroll, in a first direction at a rate depending uponthe distance between point A and point B. If the user instead had slidthe finger to point C on the scrolling region 101, wherein point C is inan opposite direction than point B relative to point A, then thedocument 401 may automatically scroll, and continue to scroll, in asecond opposite direction at a rate depending upon the distance betweenpoint A and point C. Of course, the user may continue to slide thefinger in order to dynamically adjust the rate of automatic scrolling asdesired. Upon the user releasing the finger, the automatic scrolling maycease. As another example, the automatic scrolling rate may depend uponthe absolute finger location on the scrolling region 101, such thatwhere the finger is located approximately in the middle of the scrollingregion 101, the scrolling rate may be zero, and when the finger islocated away from the middle, the automatic scrolling rate may increasewith increasing distance from the middle. Any portion of the scrollingregion 101 (not just the middle) may be used as a reference from whichto measure the absolute position of the finger for purposes of automaticscrolling rate determination.

Auto-Scrolling Rate Determination, Such as Based on Finger Pressure orContact Area

Many different functions for mapping the rate of scrolling to the user'sinput are possible. For example, the system may use a fixed rate ofscrolling and/or a variable rate of scrolling based on various factorssuch as finger speed, finger pressure/contact area, length of hold,number of taps, and/or frequency of taps. If a fixed rate of scrollingis used, the fixed rate may have a default value, may beuser-selectable, and/or may be selectable by the software applicationthat is manipulating/editing the document 401. A variable rate ofscrolling may allow the user to continuously adjust the scrolling rateas he or she scans through the document. The capability to continuouslyadjust the scrolling rate may provide a more controllable andpredictable scroll interface.

In one exemplary embodiment, a variable rate of scrolling may be usedbased upon finger pressure against the touch-sensitive surface of thescrolling device 100. Finger pressure may be measured directly and/or bea function of measured finger contact area upon the touch-sensitivesurface of the scrolling device 100. In such an embodiment, an algorithmmay be used that normalizes for the amount of finger contact on thecurrent scrolling action and/or performs an exponential transformationof the finger contact area to provide a controllable range of scrollingspeeds between slow and fast scrolling. The scrolling rate may becalculated in two steps. For instance, for each sample of fingerpressure on the touch-sensitive surface of the scrolling device 100, thefollowing variable P may first be calculated:P=K ₃((p/p ₀)−1),  (6),where P is the normalized pressure estimate based on contact area, K₃ isa gain factor, p is the current pressure reading, and p₀ is the pressurechosen for the minimum-rate point described below.

Next, the result of equation (6) may be used to calculate the rate ofscrolling for the current sampled finger pressure:dy/dt=K ₄(e ^((P+1)) −e+1)  (7)where K₄ is a gain factor and dy/dt is the resulting calculated rate ofscrolling (t represents time). Thus, using such an equation, the rate ofscrolling of the document is a nonlinear function of the finger contactarea and/or pressure. If dy/dt is less than zero, then dy/dt may be setto zero. Further, if dy/dt is greater than a threshold, dy/dt may be setto that threshold. When the scrolling rate dy/dt is applied to thescrolling of the document, a positive value of dy/dt may be used forscrolling down (for instance), and to scroll up dy/dt may be multipliedby minus-one.

In some exemplary embodiments, the system 200 may determine which of theregions 102, 103 are being touched, and different values of the gainfactors K₃ and/or K₄ may be used for auto-scrolling in opposingdirections depending upon which active region 102, 103 is being touched.For instance, the auto-scrolling up and the auto-scrolling down regions(e.g., regions 102 and 103, respectively) may be associated withdifferent gain factors K₃ and/or K₄. Depending upon the particular shapeof the touch-sensitive surface of the scrolling device 100, the shape ofany bezel or other divider that may separate the scrolling region 101from the auto-scrolling regions, and whether auto-scrolling occurs inregions physically separate from the scrolling region 101, differentamounts of contact between the user's finger and the auto-scrolling upregions than the auto-scrolling down region may occur. For instance,referring to FIGS. 8A and 8B, the user's finger 801 may, during normaluse of the scrolling strip 100, be expected to be at a slightlydifferent angle when contacting the active region 102 than whencontacting the active region 103. This causes the amount of surfacecontact to be greater when the finger is extended (FIG. 8B) than whenthe finger is curled (FIG. 8A). Accordingly, the values of the gainsfactors K₃ and/or K₄ may be set to compensate for this difference suchthat up auto-scrolling and down auto-scrolling have a similar feel andresponse as compared to each other. Gain factor K₄ is in units ofscrolling speed, such as pixels per second, centimeters per second, ortext lines per second. The value dy/dt will also have the same units asK₄.

The choice of an appropriate value for the p₀ minimum-rate point can beimportant. Several ways of determining the value of p₀ are possible, butpreferably the dynamics of the current user gesture itself are used todetermine a value of p₀ in real time as the user is attempting tospecify a rate of scrolling. For instance, the finger pressure againstthe touch-sensitive surface of the scrolling device 100 for the minimumrate point may be sampled following an optional delay after initialcontact. The delay should be long enough for the user to establish firminitial contact with the touch-sensitive surface, such as about 200milliseconds. During this delay, the current value of the fingerpressure may be continuously measured and used as a preliminary estimatefor p₀, so that the user may start scrolling with minimal perceptibledelay.

A maximum threshold on the rate of scrolling may alternatively oradditionally be imposed. Also, a sliding window may be used thatrepresents the range of anticipated future pressure values p, which maybe based on one or more previous pressure values p. Where thecomputation of dy/dt as shown above results in a rate larger than themaximum threshold, the value for p₀ may be recomputed by sliding thewindow upward in pressure values such that the current pressure value pwould result in the maximum threshold rate of scrolling. On the otherhand, if the finger pressure falls below the bottom of the window, thevalue of p₀ may be recomputed by sliding the window downward. The knownrange of pressure values that may be sensed by the scrolling device 100may be used as a basis for choosing initial default minimum and maximumpressures of the window. The rate limits and/or pressure maximumcriteria described below may be used in such a sliding-window strategy.In some embodiments, such a sliding-window technique allows the system200 to automatically self-calibrate for different users where some havea heavy touch or large fingers as compared to other users who have alight touch or smaller fingers.

Rate limits may be utilized to improve the selection of the p₀minimum-rate point. A maximum and/or minimum rate of movement may beimposed on the above equations such that if a rate limit is exceeded,the p₀ minimum-rate point is recalculated to satisfy the limit. This mayhave the effect of adapting the sensed pressures to the user's gestureand typical reading speeds. Also, because most touch-sensitive padsactually sense finger contact area in order to determine fingerpressure, there is often a practical limit on how much “pressure” can beapplied. Knowledge of typical such maximum pressure values can be usedto help choose the p₀ minimum-rate point. For example, if the userstarts by pressing hard against the touch-sensitive surface of thescrolling device 100, then the document 401 may immediately scrollquickly where the system 200 knows that the user will not be able tofurther increase the contact area.

In some embodiments, the pressure maximum or the parameters in the aboveequations may differ for the active regions 102, 103, since the typicalcontact area of the user's finger with different regions in differentlocations may be expected to vary. In other words, the scroll rates indifferent directions may be different per unit of finger pressureapplied to the touch-sensitive surface of the scrolling device 100.Adjustments to the parameters depending upon the area touched on thetouch-sensitive surface of the scrolling device 100 may make thepressure response appear more consistent.

Speculative Autoscroll

In an exemplary embodiment, one or more of the active regions (e.g.,active region 102) are physically contiguous with the scrolling region101, or the divisions between the active regions and the scrollingregion 101 are small. In such an embodiment, the active regions may havea plurality of functions depending upon how they are used. For example,the active region 102 may be flexibly used both as autoscrollingregions, as portions of the main scrolling region 101, and as a page up,down, left, or right region. Providing the active region 102 with aflexible plural functionality can be useful where the active region 102is not physically separate from the scrolling region 101. Otherwise, forexample, accidental activation of autoscrolling may frequently occurwhen the user's finger reaches an end of the scrolling region 101.

It may thus be desirable to provide different ways to activate thevarious functions of the active regions. For example, a user may berequired to tap and then hold the finger down on an active region 102for a minimum amount of time in order to activate autoscrolling. But ifthe user were instead to slide the finger along the scrolling region 101into the active region 102, or slide the finger from the active region102 into the scrolling region 101, then other scrolling (e.g., absolutescrolling) may be performed as already discussed herein. An example ofsuch an embodiment is illustrated in FIG. 9. The system 200 may detectthat the user's finger has touched the active region 102 (step 901). Inresponse, the system 200 may start a timer to measure the amount of timethat the user's finger is touching the active region 102 (step 902). Ata first timeout (e.g., 200 milliseconds), the system 200 may determinewhether the active region 102 is still being continuously touched (step903). If not, then the touch was relatively short and is interpreted asa tap (step 904). In such a case, autoscrolling would not be activatedsince the user did not intend autoscrolling. The tap may be interpretedas a particular function, such as a page up/down/left/right button.Thus, by tapping the active region 102, the document 401 may experiencea page-up. Also, if the touch in the active region 102 was shorter thanthe first timeout, but instead of removing the finger, the finger slidto another region such as the scrolling region 101, then the system 200may not recognize the tap command. This may be true even where thefinger re-enters (by sliding) into the active region 102.

On the other hand, if the finger is still continuously touching theactive region 102 at the expiration of the first timeout, then thesystem 200 may speculate that the user will continue to hold. The system200 may thus immediately (or after a delay such as approximately anadditional 200 milliseconds) begin autoscrolling the document (step905). By speculating in this way, the system 200 is able to provide aquick response the user's gesture; the response of the system 200 mayappear nearly instantaneous to the user.

The system 200 may continue to autoscroll while waiting until theexpiration of a second longer timeout (e.g., approximately 700milliseconds). The system may determine whether the finger has stillcontinuously touching the active region 102 at the expiration of thesecond timeout (step 906).

If the finger is still continuously touching the active region 102 atthe expiration of the second timeout, then the system 200 guessedcorrectly and may continue to autoscroll the document 401 until thefinger is released from the active region 102. On the other hand, if thefinger is not still touching the active region 102, then the system 200guessed incorrectly. But no harm has been done. The system 200 maycorrect the incorrect guess by undoing the amount of autoscrolling thathas occurred (e.g., the amount of scrolling that accumulated between thefirst and second timeouts) (step 907). They system 200 may furtherperform the correct requested function that would have been performed bytapping the active region 102. In this example, the system 200 wouldundo the autoscrolling that already occurred and then page the document401. Alternatively, the system 200 may save time by scrolling thedocument by a single amount to account for the incorrect autoscrollingand for the intended paging (e.g., by scrolling by the difference in thepaging amount and the unintended autoscrolling amount). The effect wouldbe the same: to position the document 401 where the user intended it tobe positioned.

Once autoscrolling has begun, if the user's finger slides out of theactive region 102 and into the scrolling region 101, then scrolling perthe scrolling region 101 (e.g., absolute or relative scrolling) may beactivated. If the finger then slide back into the active region 102,autoscrolling may again be activated. A reason for this is that the usermay unintentionally move the finger away from the active region 102while varying finger pressure (i.e., finger contact area) during theautoscrolling gesture.

The timeouts used for speculative autoscroll are exemplary, and othervalues may be used. For example, the first timeout may beuser-definable, and/or may be between 0 milliseconds and the secondtimeout, inclusive. Also, speculative autoscroll may be utilized withany configuration of scrolling device 100, and not just one that hasphysically contiguous autoscroll regions.

Horizontal/Diagonal Scrolling and Panning

Although many of the exemplary embodiments have been described hereinprimarily in relation to a single axis scrolling strip-shaped scrollingdevice 100 for vertical scrolling of the document 401, the same aspectsand concepts of the invention may be applied to a horizontal scrollingstrip, a two-dimensional “scrolling pad” (which provides both verticaland horizontal scrolling, and may further combine the two to providediagonal scrolling/panning) such as shown in FIG. 6, and/or a multi-legscrolling surface that may be, e.g., in the shape of a plus or cross asshown in FIG. 7 for providing two-dimensional scrolling along arespective leg. As such, the term “scrolling” as has been used hereinincludes both one-dimensional scrolling as well as two-dimensionalscrolling and panning.

On a two-dimensional scrolling pad, mapping of scrolling motion may givemore or less priority to motions that are along a primary axis dependingupon user-selectable options and/or the currently running softwareapplication that is manipulating/editing the document 401. In someembodiments, such as where scrolling text documents having a width equalto or less than the width of the display screen 208, only the primaryaxis of motion is considered (thus diagonal movement is prohibited). Inother embodiments, such as where scrolling spreadsheet documents, asmall dead-band is provided for small motions which discourages smalldiagonal motions. In still other embodiments, such as where scrollingimages, motion in any and all directions (including diagonal motion) isallowed without restriction. Two-dimensional scrolling devices, such asthe one illustrated in FIG. 7, may have one or more scrolling regions700 and/or active regions 701, 702, 707, 703, functioning in the sameway as the scrolling region 101 and active regions 102, 103 describedabove. Also, two-dimensional scrolling devices such as those illustratedin FIGS. 6 and 7 may have lengths d₁ and d₂, which may be treated as thelength D (described earlier for the scrolling device 100) for eachrespective dimension.

In some embodiments, full or limited horizontal scrolling features areprovided by the scrolling device 100. For instance, the scrolling devicemay have a combination horizontal and vertical scrolling strip (such asin FIG. 7), or a vertical scrolling strip with separate active regions(e.g., for automatic up, down, left, and right scrolling, respectively).The left-scroll and right-scroll active regions (e.g., active regions702 and 704, respectively) may be similar in operation to the up-scrolland down-scroll active regions (e.g., active regions 701 and 703,respectively) and/or may support similar options such as tapping to pagethe document 401 left or right, or pressing and holding to auto-scrollthe document 401 left or right.

While exemplary systems and methods embodying the present invention areshown by way of example, it will be understood, of course, that theinvention is not limited to these embodiments. Modifications may be madeby those skilled in the art, particularly in light of the foregoingteachings. For example, each of the elements of the aforementionedembodiments may be utilized alone or in combination with elements of theother embodiments.

Also, the same touch-sensitive surface of the scrolling device 100 maybe used to support any combination or subcombination of the variousdifferent scrolling modes and features described herein. Thus, more thanone type of scrolling mode and/or feature may be used with the samescrolling device 100 surface.

Further, although certain exemplary gestures (e.g., tap-and-hold, ordouble-tap) have been described as ways of implementing or invokingcertain features and scrolling modes, any desired gesture may be used toimplement or invoke any feature and/or scrolling mode in any combinationor subcombination. Any known method of gesture detection may be used inconjunction with the various features and scrolling modes used with thescrolling device 100.

1. A method for changing a scroll mode in a computer system forscrolling a document, the method comprising the steps of: placing thecomputer in a manual scrolling mode; while in the manual scrolling mode,sensing a gesture at a first location made by a pointer on atouch-sensitive surface, wherein the touch-sensitive surface furtherincludes first and second end portions and a scrolling region disposedbetween the first and second end portions, and wherein the gesture ismade on the scrolling region; determining whether the gesture is atouch-and-hold gesture such that the pointer remains substantially stillrelative to the touch-sensitive surface; responsive to the gesture beingthe touch-and-hold gesture, placing the computer in an auto-scrollingmode; and receiving, in the auto-scrolling mode, a subsequent sliding ofthe pointer on the touch-sensitive surface from the first location to asecond location without removal of the pointer prior to the subsequentsliding, and in response causing automatic scrolling of the document,wherein the automatic scrolling is performed at a rate that depends upona difference between the first and second locations.
 2. The method ofclaim 1, wherein the automatic scrolling mode terminates in response tothe pointer being removed from the touch-sensitive surface.
 3. Themethod of claim 1, wherein the step of determining includes comparingthe gesture with a stored set of a plurality of gestures includingthe—touch-and-hold gesture.
 4. The method of claim 1, further includinga step of reverting to a default scrolling mode in response to anothergesture made on the touch-sensitive surface.
 5. A computer-readablemedium storing computer-executable instructions for performing the stepsrecited in claim
 1. 6. A method in a computer system, comprising:changing from a first scroll mode to an auto-scrolling mode in responseto a touch-and-hold gesture made relative to a touch-sensitive surfaceat a first location such that the pointer remains substantially stillrelative to the touch-sensitive surface, wherein the touch-sensitivesurface comprises a continuous surface configured to distinguish betweenvarious locations of the pointer relative to the continuous surface; andin the auto-scrolling mode, producing automatic scrolling of a documentin response to a subsequent sliding of the pointer to a second locationon the touch-sensitive surface from the first location without removalof the pointer prior to the subsequent sliding, wherein the automaticscrolling is performed at a rate that depends upon a difference betweenthe first and second locations.
 7. The method of claim 6, furtherincluding a step of determining whether a received gesture correspondsto a touch-and-hold gesture out of a stored plurality of possiblegestures.
 8. The method of claim 6, further including a step ofreverting the scroll mode in response to a third gesture made relativeto the touch-sensitive surface.
 9. The method of claim 8, wherein thestep of reverting the scroll mode includes switching to an absolutescroll mode.
 10. A computer-readable medium storing computer-executableinstructions for performing the steps recited in claim
 6. 11. Acomputer-readable medium storing computer-executable instructions forperforming steps comprising: while in a manual scrolling mode, sensing agesture at a first location made by a pointer on a touch-sensitivesurface; determining whether the gesture is a touch-and-hold gesturesuch that the pointer remains substantially still relative to thetouch-sensitive surface; responsive to the gesture being thetouch-and-hold gesture, switching from the manual scrolling mode to anauto-scrolling mode; and producing, in the auto-scrolling mode,automatic scrolling of a document in response to a subsequent sliding ofthe pointer to a second location on the touch-sensitive surface from thefirst location without removal of the pointer prior to the subsequentsliding, wherein the automatic scrolling is performed at a rate thatdepends upon a difference between the first and second locations.